<script setup lang="ts">
import HomePanel from "./HomePanel.vue";
import useStore from "@/store/index"
import { useLazyData } from "@/utils/hooks";
const {home} = useStore()
const target=  useLazyData(()=>{
  home.getNewList()
})
console.log(target.value);

// const target = ref(null);
// onMounted(() => {
//   const { stop } = useIntersectionObserver(
//     target.value,
//     ([{ isIntersecting }]) => {
//       console.log("新鲜好物", isIntersecting);
//       //  可见
//       if (isIntersecting) {
//         // 发请求
//         home.getNewList()
//         // 停止监听
//         stop();
//       }
//     }
//   );
// });

</script>

<template>
  <div ref="target">
    <HomePanel title="新鲜好物" subTitle="新鲜出炉品质靠谱">
    <template #right>
      <XtxMore path="/"></XtxMore>
    </template>
    <Transition name="fade">
    <ul class="goods-list"  v-if="home.newGoodList.length > 0">
      <li v-for="item in home.newGoodList" :key="item.id">
        <RouterLink :to="'/goods/'+item.id">
          <img
            v-lazy="item.picture"
            alt=""
          />
          <p class="name ellipsis">{{item.name}}</p>
          <p class="price">&yen;{{item.price}}</p>
        </RouterLink>
      </li>
    </ul>
     <div class="home-skeleton" v-else>
        <div
            class="item"
            v-for="i in 4"
            :key="i"
            :style="{ backgroundColor: '#f0f9f4' }"
          >
            <XtxSkeleton bg="#e4e4e4" :width="306" :height="306" animated fade />
            <XtxSkeleton bg="#e4e4e4" :width="160" :height="24" animated fade />
            <XtxSkeleton bg="#e4e4e4" :width="120" :height="24" animated fade />
          </div>
      </div>
    </Transition>
  </HomePanel>
  </div>
</template>

<style lang="less" scoped>
.fade-enter-active,.fade-leave-active{
  transition: all 2s;
}
.fade-enter-from, .fade-enter-to{
  opacity: 0;
}
.home-skeleton {
  width: 1240px;
  height: 406px;
  display: flex;
  justify-content: space-between;
  .item {
    width: 306px;
    .xtx-skeleton ~ .xtx-skeleton {
      display: block;
      margin: 16px auto 0;
    }
  }
}
.goods-list {
  display: flex;
  justify-content: space-between;
  height: 406px;
  li {
    width: 306px;
    height: 406px;
    background: #f0f9f4;
    .hoverShadow();
    img {
      width: 306px;
      height: 306px;
    }
    p {
      font-size: 22px;
      padding: 12px 30px 0 30px;
      text-align: center;
    }
    .price {
      color: @priceColor;
    }
  }
}
</style>
